Utilisation des dictionnaires

Les dictionnaires s'avèrent souvent plus utiles que les simples listes en permettant d'utiliser des "clés", au lieu d'indices, qui peuvent être numériques, textuelles ou de n'importe quels types. Accéder à des éléments via un "nom" plutôt qu'un numéro est souvent bien plus naturel.

ICréation et modification de dictionnaires

On peut créer un dictionnaire vide et le remplir plus tard ou directement rempli :
  • d=dict() ou d={} permettent de créer un dictionnaire vide.
  • prix={'tomates':5, 'courgettes':3, 'avion':1000000} contiendra 3 éléments dont les clés sont des chaînes et les valeurs des entiers
  • prix['tomates'] vaut 5
Les clés peuvent également être des entiers (ce qui revient à la même utilisation que les listes) :
d={0:'arthur'}
d[1]='bertrand'
d[2]=''
Les clés peuvent aussi être des listes ou des tuples, ce qui est déjà plus intéressant :
d={}
d[1,2]='m12'
d[3,3]='m33'
En reprenant l'exemple du damier de l'image ci-dessous, déclarer un dictionnaire damier dont les clés sont des tuples représentant la position de la case et dont les valeurs sont 'noir' ou 'blanc' :

Voici quelques méthodes utiles permettant d'agir sur un dictionnaire D :

Contrairement aux listes in teste les clés et non pas les valeurs.
Dans la console, créer le dictionnaire D={'a':1, 'spip':'écureuil', (1,2):'dame', [1,2]:{}, 1:'z' } . Dans l'ordren effectuer les opérations suivantes :
  • Retirer l'élément de clé 'spip' et affecter sa valeur à une variable save
  • Tester si il y a un élément dont la clé est le tuple (1,2)
  • Tester si il y a un élément dont la valeur est 'z'

IIParcourir un dictionnaire

Le parcours d'un dictionnaire se fait via les clés de la manière suivante :
for key in D:
     print ('clé : ', key)
     print ('valeur : ', D[key])
Les valeurs doivent être récupérée via l'indice.
Téléchargez et éditez le fichier suivant sécurité.py .
  • Ecrire une fonction mdp_secured(t) qui prend une chaîne de caractères t et qui renvoie True si elle contient plus de 8 caractères, au moins une majuscule, au moins un chiffre et aucun caractère spécial, False sinon.
  • Parcourir le dictionnaire des utilisateurs, et écrire un message d'alerte pour chaque utilisateur dont le mot de passe n'est pas sécurisé qui précisera le problème (trop court, pas de nombre, pas de majuscule).
  • On peut mettre en minuscule une chaîne de caractère t avec la méthode t.lower()
  • Pour tout chaîne s , la méthode s.isalpha() renvoie True si tous ses caractères sont alphabétiques.
  • Le dictionnaire des utilisateurs a pour clés les noms des utilisateurs et pour valeurs un dictionnaire ayant deux clés : mail et pass
  • Parcourir le dictionnaire utilisateurs avec une boucle for et tester les valeurs de utilisateurs[key][pass] à l\'aide des fonctions len , lower et isalpha .